package com.fastloan.jn.mgt.process.service;


import com.fastloan.jn.mgt.process.model.JnAppApproveUser;
import com.fastloan.jn.mgt.process.model.JnApplicationApprovalReview;
import com.fastloan.jn.mgt.process.model.vo.AppApproveUserVo;
import com.kawins.base.BaseService;

import java.util.List;
import java.util.Map;

/**
 *审核信息表
 *
 * @author chenkai
 *         createTime 2017-02-2017/2/14 11:50
 */
public interface AppApproveUserService extends BaseService<JnAppApproveUser> {
    /**
     * 根据进件id查询审批信息(新增审批)
     * @param applicationId 进件ID
     * @param userId
     * @return 审批信息
     */
    Map<String, Object> queryApproval(String applicationId, String userId);

    /**
     * 查询待审核进件
     * @param map 参数
     * @return 待审核进件
     */
    List<AppApproveUserVo> queryApproval(Map<String, Object> map);

    /**
     * 初始化审贷会成员信息
     * @param userIds 客户经理id
     * @param applicationApprovalReview 审贷会
     * @return 数据库变记录
     */
    int initialization(String userIds, JnApplicationApprovalReview applicationApprovalReview);


    /**
     * 查询最后一条审批信息的审批金额和审批信息
     * @param applicationId 进件id
     * @param flag 是否审贷会 0否, 1是
     * @return 最后一条审批信息的审批金额和审批信息
     */
    JnAppApproveUser queryEndApprovalUser(Integer applicationId, int flag);


    /**
     * 更新信息(审贷会用)
     * @param appApproveUser 用户信息
     * @return 数据库变记录
     */
    int updateStatus(JnAppApproveUser appApproveUser);

    /**
     * 查询统计相关(审核专家)
     *
     * @param userId    用户id
     * @param status    审批状态
     * @param flag    true status=** / false status !=**
     * @return 统计数量
     */
    Integer queryCount(int userId, int status, boolean flag, int customerType);

    /**
     * 当前审批总额(审核专家)
     * @param userId 用户id
     * @return 统计数量
     */
    Integer queryApproveAmountCount(int userId, int customerType);

}
